<template>
    <div>
      <a-card :bordered="false" style="margin-bottom: 10px;">
        <!-- 条件搜索 -->
        <div class="table-page-search-wrapper">
          <a-form :labelCol="labelCol" :wrapperCol="wrapperCol" ref="queryForm">
            <a-row :gutter="32">
              <a-col :span="6">
                <a-form-item label="查询条件">
                  <a-input  placeholder="查询条件"  v-model="queryParam.condition" />
                </a-form-item>
              </a-col>
              <a-col>
                <span class="table-page-search-submitButtons" style="float: right;">
                  <a-button type="primary" @click="handleQuery"><a-icon type="search" />查询</a-button>
                  <a-button style="margin-left: 8px" @click="resetQuery"><a-icon type="redo" />重置</a-button>
                </span>
              </a-col>
            </a-row>
          </a-form>
        </div>
      </a-card>
      <a-card :bordered="false" class="table-card">
        <advance-table 
          :scroll="{x:true}"
          :title="title" :pagination="{
          current: queryParam.pageNum,
          pageSize: queryParam.pageSize,
          total: total,
          showSizeChanger: true,
          showLessItems: true,
          showQuickJumper: true,
          showTotal: (total, range) => `第 ${range[0]}-${range[1]} 条，总计 ${total} 条`,
          onChange: changeSize,
          onShowSizeChange: onShowSizeChange
        }" tableKey="base-bizOrder-index-table"  rowKey="id" @refresh="getList"
        
          :columns="columns" :data-source="dataList" :loading="loading" :format-conditions="true">
          <div class="table-operations" slot="button">
            <a-button type="primary"  @click='print'>
              <a-icon />打印
            </a-button>
          <a-button type="primary" v-hasPermi="['biz:bizReportInventoryStat:export']" :loading="downLoading"  @click='exportExcel'>
            <a-icon />导出
          </a-button>
          </div>
        </advance-table>
      </a-card>
      <ant-modal
        :visible="open"
        modal-title="打印库存明细表"
        :adjust-size="false"
        @cancel="cancel"
        modalHeight="550"
        modalWidth="1000">
        <a-row slot="content">
          <iframe height='425' width='985' style='border:none;' :src='printUrl' ></iframe>
        </a-row>

        <div slot="footer">
          <a-button @click="cancel">关闭</a-button>
        </div>
      </ant-modal>
    </div>
  </template>
  <script>
  import AdvanceTable from '@/components/pt/table/AdvanceTable'
  import { listInventoryStat } from '@/api/biz/bizInventoryStat'
  import AntModal from '@/components/pt/dialog/AntModal'
  import storage from 'store'
  import tableDragResizeMixin from '@/mixins/tableDragResizeMixin'
  import listMixin from '@/mixins/listMixin';
  import { ACCESS_TOKEN } from '@/store/mutation-types'
  export default {
    name: 'InventoryStat',
    components: {
      AdvanceTable,
      AntModal
    },
    mixins:[tableDragResizeMixin,listMixin],
    data() {
      return {
        printUrl:'/api/biz/bizProductInventory/printInventoryStat?Authorization='+storage.get(ACCESS_TOKEN),
        printUrlPath:'/api/biz/bizProductInventory/printInventoryStat?Authorization='+storage.get(ACCESS_TOKEN),
        open:false,
        // 遮罩层
        loading: true,
        // 选中数组
        ids: [],
        // 选中的主键集合
        selectedRowKeys: [],
        // 选中的数据集合
        selectedRows: [],
        // 高级搜索 展开/关闭
        advanced: false,
        // 非单个禁用
        single: true,
        // 非多个禁用
        multiple: true,
        // 总条数
        total: 0,
        // label的百分比
        labelCol: { span: 6 },
        // 内容区域的百分比
        wrapperCol: { span: 18 },
        statusOptions: [],
        payOptions: [],
        // 表格数据
        dataList: [],
        // 仓库字典
        warehouseIdOptions: [],
        // 供应商列表
        supplierOptions: [],
        // 查询参数
        title:'库存明细',
        listFunc:(param)=>listInventoryStat(param),
        queryParam: {
          pageNum: 1,
          pageSize: 11,
          purchaseDate: undefined,
          supplierCode: undefined,
          status: undefined
        },
        columns: [
        {
            title: '大类',
            dataIndex:'categoryName',
            align: 'center'
          },
          {
            title: '仓库',
            dataIndex:'warehouseName',
            align: 'center'
          },
          {
            title: '仓位',
            dataIndex:'postion',
            align: 'center'
          },
          {
            title: '品牌',
            dataIndex:'brand',
            align: 'center',
          },
          {
            title: '颜色',
            dataIndex:'color',
            align: 'center'
          },
          {
            title: '规格',
            dataIndex:'spec',
            align: 'center'
          },
          {
            title: '型号',
            dataIndex:'model',
            align: 'center'
          },
          {
            title: '主数量',
            dataIndex:'number',
            align: 'center'
          },
          {
            title: '主单位',
            dataIndex:'unit',
            align: 'center'
          },
          {
            title: '辅助数量1',
            dataIndex:'assistNumberA',
            align: 'center'
          },
          {
            title: '辅助单位1',
            dataIndex:'assistUnitA',
            align: 'center'
          },
          {
            title: '辅助数量2',
            dataIndex:'assistNumberB',
            align: 'center'
          },
          {
            title: '辅助单位2',
            dataIndex:'assistUnitB',
            align: 'center'
          },
          {
            title: '库存状态',
            align: 'center',
            dataIndex: 'inventoryState',
            width: '10%'
          }
        ]
      }
    },
    created() {
      this.getList();
    },
    methods: {
      /** 查询销售单列表 */
      getList() {
        let params = Object.assign({},this.queryParam,{pageSize:this.queryParam.pageSize - 1})
        listInventoryStat(params).then(response => {
          this.dataList = response.data.list
          this.total = response.data.total
          this.loading = false
          this.tableAddTotalRow(this.columns,this.dataList)
        })
      },
      /** 搜索按钮操作 */
      handleQuery() {
        this.queryParam.pageNum = 1
        this.getList()
      },
      /** 重置按钮操作 */
      resetQuery() {
        this.queryParam = {
          pageNum: 1,
          pageSize: 11,
          purchaseDate: undefined,
          supplierCode: undefined,
          status: undefined
  
        }
        this.handleQuery()
      },
      /** 翻页操作 */
      onShowSizeChange(current, pageSize) {
        this.queryParam.pageSize = pageSize
        this.getList()
      },
      /** 翻页操作 */
      onSizeChange(current, size) {
        this.queryParam.pageNum = 1
        this.queryParam.pageSize = size
        this.getList()
      },
      /** 翻页操作 */
      changeSize(current, pageSize) {
        this.queryParam.pageNum = current
        this.queryParam.pageSize = pageSize
        this.getList()
      },
      /** 翻页操作 */
      onSelectChange(selectedRowKeys, selectedRows) {
        this.selectedRowKeys = selectedRowKeys
        this.selectedRows = selectedRows
        this.ids = this.selectedRows.map(item => item.id)
        this.single = selectedRowKeys.length !== 1
        this.multiple = !selectedRowKeys.length
      },
      cancel() {
        this.open=false;
      },
      print() {
        this.printUrl=this.printUrlPath+"&r="+Math.random();
        if(this.queryParam.condition) {
          this.printUrl+="&condition="+this.queryParam.condition;
        }
        this.open=true;
      }
    }
  }
  </script>